12-1 Excel 仵蛌讀

在本章中,我們將經常使用 test01.xls 來進行範例說明,此檔案位於本書的範例光碟,雙擊此檔案圖示後,可開啟此 Excel 檔案,畫面如下:

首先,我們可以使用 xlsfinfo 指令來讀出一個 Excel 檔案的相關資訊及裡面的工作表(Sheets)名稱,指令格式如下:

[fileType, sheets] = xlsfinfo(xlsFile)

其中 xlsFile 是 Excel 檔案名稱,所傳回的變數有兩個,其中 fileType 是檔案類型,而 sheets 則包含表單名稱,範例如下:

Example 1: 12-與Excel試算表的整合/xlsfInfo01.mxlsFile='test01.xls'; [fileType, sheets] = xlsfinfo(xlsFile)fileType = Microsoft Excel Spreadsheet sheets = 'Sheet1' 'Sheet2' 'Sheet3' 'Position'

若要讀出工作表內容,可以使用 xlsread 指令,範例如下:

Example 2: 12-與Excel試算表的整合/xlsread01.mxlsFile = 'test01.xls'; [number, text, rawData] = xlsread(xlsFile)number = 1.0000 6.3000 2.3000 2.3000 7.0000 NaN 3.0000 8.3000 4.7000 4.7000 9.0000 NaN 5.0000 NaN 3.8000 text = '' 'C2' '' '' '' 'pi' 'yes' '' rawData = [ 1] [6.3000] [2.3000] [2.3000] [ 7] 'C2' [ 3] [8.3000] [4.7000] [4.7000] [ 9] 'pi' [ 5] 'yes' [3.8000]

在上述範例中,由於並未指定工作表名稱,所以 xlsread 會主動讀入第一個工作表的資料。此外,由於工作表中的資料可以是數值或字串,所以 xlsread 所傳回的三個變數 number, text, rawData,分別代表工作表中的數值資料、字串資料、以及所有的資料。

事實上 xlsread 的功能很完整,我們也可以使用 xlsread 來讀出某一個工作表中的一部份或全部的資料,範例如下:

Example 3: 12-與Excel試算表的整合/xlsread02.mxlsFile = 'test01.xls'; B = xlsread(xlsFile, 'Sheet2') % 讀出 'Sheet2' 的全部資料 C = xlsread(xlsFile, 2, 'A2:B4') % 讀出第二個試算表位於 A2:B4 的資料B = 26 22 42 41 87 32 24 53 C = 42 41 87 32 24 53

在上述範例中,我們先使用 xlsread 來讀出 ‘Sheet2’ 工作表的資料,然後再指定只讀出位於某一個特定區域的資料,此指定區域為 A2:B4,其中 A:B 代表第一和到二直行,而 2:4 代表第二到第四橫列。

在工作表中,我們經常使用第一列來儲存欄位資訊,其他列來存放數值資訊,對於這一類特定格式的工作表,xlsread 指令能夠自行判斷格式並直接抓出數值資料及欄位字串,範例如下:

Example 4: 12-與Excel試算表的整合/xlsread03.mxlsFile = 'test01.xls'; [numericData, headerText] = xlsread(xlsFile, 'Position')numericData = 11 11 12 14 13 19 14 26 15 35 headerText = 'Time (sec)' 'Position (m)'

在上述範例中,numericData 包含第二列以後的數值資料,而 headerText 則包含第一列的欄位字串。

Hint
xlsread 也可以使用滑鼠來選取要讀取的工作表區域,預知詳情,可輸入「help xlsread」。


MATLAB程式設計:進階篇